package com.hst.capacity.domain.model.request.express;

import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.util.Date;

@Data
public class ExpressOrderParamCopy {

    private String idMember;//下单用户ID 外键会员登录表
    private String idDriver;//订单委派司机ID 外键司机表
    private String idFranchisee;//订单所属服务商ID 外键服务商信息表
    private String fullName;//订单所属服务商全名
    private int idServiceType = 9;//订单服务类型()？？
    private int idVehicleType = 1;//订单委派车辆类型ID
    private String idServicePriceType;//价格规则表ID 定价规则表外键
    private Integer carpoolType;//用车形式（0:拼车 1:包车）
    private Integer carpoolService;//拼车服务要求（0:可拼车可包车 1:不拼车 2:只拼车）
    @NotEmpty(message = "运营区域code不能为空！")
    private String regionCode;//运营区域code值,数据来自行政区域信息表
    private int priceRule = 0;//定价规则（0：普通定价 1：基础定价 2：站对点拼车 3：站对点包车）？？ 可舍去
    private int orderType = 0;//用车类型（0：实时 1：预约）
    private String idStation;//汽车站点ID
    private int inStation;//接站送站（0:接站 1:送站 9:非接送站业务）
    private String idTask;//拼车任务表ID
    /**
     * 乘客信息
     */
    private String userName;//下单用户姓名,数据来自会员信息表
    @NotEmpty(message = "下单人手机号不能为空！")
    private String userMobile;//下单用户手机号,数据来自会员信息表
    private String passengerName;//乘车人姓名
    private String passengerMobile;//乘车人联系电话
    private Integer passengerNumber;//乘客数量

    /**
     * 订单信息
     */
    private Date appointmentTime;//用户预约时间
    private String driverLongitude;//司机接受订单时车辆经度
    private String driverLatitude;//司机接受订单时车辆维度

    private Date deptime;//上车时间
    private String startAddress;//上车详细地址
    private String startAddressLongitude;//上车经度
    private String startAddressLatitude;//上车纬度
    private String endAddress;//下车详细地址
    private String endAddressLongitude;//预计下车经度
    private String endAddressLatitude;//预计下车维度

    private Date desttime;//下车时间
    private String dropOffArea;//实际下车详细地址
    private String dropOffAreaLongitude;//实际下车经度
    private String dropOffAreaLatitude;//实际下车维度

    private Date startServiceTime;//服务开始时间
    private Date endServiceTime;//服务结束时间
    private Float referenceDistance;//预计行程距离
    private Integer estimatedTime;//预计花费时间
    private Float estimatedMoney;//预计付款金额

    private Date assignTime;//系统派单时间

    private Float payMoney;//实际付款金额
    private Float additionalMoney;//额外追加调整费用（城际用）
    private String couponCode;//优惠券码 数据来优惠卷信息表
    private Float couponDiscount;//实际付款时优惠折扣金额
    private Integer orderSource;//下单来源（0：电话下单 1：APP下单 2:微信下单 3:网站下单 4:司机补单 5:客户经理下单 6:微信小程序下单 7:录单系统 8:玖玖公务用车系统）
    private Integer paymentType;//支付方式(0,1,2)??
    private Integer paymentStatus;//支付状态(0:未支付 1：待支付 2：已支付)

    private Integer status;//订单状态 每种订单类型可能状态设定含义不同
    private String orderMemo;//运营商备注
    private String driverMemo;//司机备注
    private String passengerMemo;//乘客备注

}
